package fachada;

import java.util.List;

import classes.Assinatura;
import classes.Cliente;
import classes.Contato;
import classes.Contrato;
import classes.EmpresaCliente;
import classes.Funcionario;
import classes.Produto;

public interface IFachada {
	//Assinatura
	void inserirAssinatura(Assinatura assinatura)throws Exception;
	
	void removerAssinatura(Assinatura assinatura)throws Exception;
	
	void atualizarAssinatura(long id)throws Exception;
	
	List<Assinatura> consultarTodosAssinatura() throws Exception;
	
	Assinatura consultarAssinaturaPorId(long id)throws Exception;
	
	//Cliente
	void inserirCliente(Cliente cliente)throws Exception;
	
	void removerCliente(Cliente cliente)throws Exception;
	
	void atualizarCliente(long id)throws Exception;
	
	List<Assinatura> consultarTodosCliente() throws Exception;
	
	Assinatura consultarClientePorId(long id)throws Exception;
	//Contato
	void inserirContato(Contato contato)throws Exception;
	
	void removerContato(Contato contato)throws Exception;
	
	void atualizarContato(long id)throws Exception;
	
	List<Assinatura> consultarTodosContato() throws Exception;
	
	Assinatura consultarContatoPorId(long id)throws Exception;
	//Contrato
	void inserirContrato(Contrato contrato)throws Exception;
	
	void removerContrato(Contrato contrato)throws Exception;
	
	void atualizarContrato(long id)throws Exception;
	
	List<Assinatura> consultarTodosContrato() throws Exception;
	
	Assinatura consultarContratoPorId(long id)throws Exception;
	//EmpresaCliente
    void inserirEmpresaCliente(EmpresaCliente empresaCliente)throws Exception;
	
	void removerEmpresaCliente(EmpresaCliente empresaCliente)throws Exception;
	
	void atualizarEmpresaCliente(long id)throws Exception;
	
	List<Assinatura> consultarTodosEmpresaCliente() throws Exception;
	
	Assinatura consultarEmpresaClientePorId(long id)throws Exception;
	//Funcionario
	void inserirFuncionario(Funcionario funcionario)throws Exception;
	
	void removerFuncionario(Funcionario funcionario)throws Exception;
	
	void atualizarFuncionario(long id)throws Exception;
	
	List<Funcionario> consultarTodosFuncionario() throws Exception;
	
	Funcionario consultarFuncionarioPorId(long id)throws Exception;
	//Produto
	void inserirProduto(Produto produto)throws Exception;
	
	void removerProduto(Produto produto)throws Exception;
	
	void atualizarProduto(long id)throws Exception;
	
	List<Assinatura> consultarTodosProduto() throws Exception;
	
	Assinatura consultarProdutoPorId(long id)throws Exception;
	
	
}
